Описание
Возвращает размер, используемый в базе данных (а не в памяти),
для объекта Field типа Memo или Long Binary, входящего в
семейство Fields объекта Recordset.
Значение
Возвращаемое значение имеет тип данных Long и указывает
число символов (для поля Memo) или размер в байтах (для поля типа Long
Binary).
Замечания
Свойство FieldSize используют вместе с методами
AppendChunk и GetChunk при работе с большими полями.
Поскольку
размеры полей типа Long Binary или Memo могут превышать
64 Кбайт, значение, возвращаемое в свойстве FieldSize, следует
присваивать переменной, способной сохранять значение типа Long.
Для
определения размеров объектов Field, типы которых отличаются от типов
Memo и Long Binary, используют свойство Size.
В рабочей
области ODBCDirect свойство FieldSize является недоступным в
следующих ситуациях:
1. Сервер базы данных или драйвер ODBC не
поддерживает указатели на стороне сервера.
2. При использовании библиотеки
указателей ODBC (т.е. при задании в свойстве DefaultCursorDriver
константы dbUseODBC, а также константы dbUseDefault, когда сервер
не поддерживает указатели на стороне сервера).
3. При использовании запроса
без указателя (т.е. при задании в свойстве DefaultCursorDriver константы
dbUseNoCursor).
Например, Microsoft SQL Server версии
4.21 не поддерживает указатели на стороне сервера, поэтому свойство
FieldSize является недоступным.
Пример
Следующая программа использует свойство FieldSize для отображения
количества байтов, используемых объектами Field типа Memo и
Long Binary в двух таблицах.
Sub FieldSizeX()
Dim dbsNorthwind As Database
Dim rstCategories As Recordset
Dim rstEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Борей.mdb")
Set rstCategories = dbsNorthwind.OpenRecordset("Типы", dbOpenDynaset)
Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники", dbOpenDynaset)
Debug.Print "Размеры полей в таблице 'Типы'"
With rstCategories
Debug.Print " Категория - " & "Описание (байт) - Иллюстрация (байт)"
' Отображает объект Recordset 'Типы' и печатает размеры
' полей в байтах для каждой записи.
Do While Not .EOF
Debug.Print " " & !Категория & " - " & !Описание.FieldSize & " - " & !Иллюстация.FieldSize
.MoveNext
Loop
.Close
End With
Debug.Print "Размеры полей в таблице 'Сотрудники'"
With rstEmployees
Debug.Print " Фамилия - Примечания (байт) - " & "Фотография (байт)"
' Отображает объект Recordset Сотрудники' и печатает размеры
' полей в байтах для каждой записи.
Do While Not .EOF
Debug.Print " " & !Фамилия & " - " & !Примечания.FieldSize & " - " & !Фотография.FieldSize
.MoveNext
Loop
.Close
End With
dbsNorthwind.Close
End Sub